/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.icq.users;

import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.log4j.Logger;
import ru.icq.accounts.GeneralAccountjICQ;

/**
 * Информация о пользователе.
 * @author Носов А.В.
 */
public class AccountUser {
    
    // Variables declaration
    private static final Logger log = Logger.getLogger(AccountUser.class);
    
    /** Имя аккаунта. */
    private String name;
    /** Путь до папки с пользователейм. */
    private File file;
    /** Тема, которую выбрал пользователь. */
    private String theme = "Default";
    /** Список аккаунтов пользователя. */
    private Map<String, GeneralAccountjICQ> accounts = new HashMap<String, GeneralAccountjICQ>();
    
//    private String login;
//    private String pass;
    // End of variables declaration

    public AccountUser() {
    }

    public AccountUser(String name) {
        this.name = name;
    }

    /**
     * Возвращает имя аккаунта.
     * @return имя аккаунта
     */
    public String getName() {
        return name;
    }

    /**
     * Устанавливает имя аккаунта.
     * @param name имя аккаунта
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * Возвращает путь к папки пользователя.
     * @return путь к папки
     */
    public File getFile() {
        return file;
    }

    /**
     * Устанавливает путь к папки пользователя.
     * @param file путь к папки
     */
    public void setFile(File file) {
        this.file = file;
    }

    /**
     * Возвращает название темы, используемую пользователем.
     * @return тема
     */
    public String getTheme() {
        return theme;
    }

    /**
     * Устанавливает название темы, используемую пользователем.
     * @param theme тема
     */
    public void setTheme(String theme) {
        if (theme != null)
            this.theme = theme;
    }

    /**
     * Полностью заменяет аккаунты пользователя.
     * @param accounts аккаунты пользователя
     */
    public void setAccounts(Map<String, GeneralAccountjICQ> accounts) {
        this.accounts = accounts;
    }

    /**
     * Добавление аккаунта к списку.
     * @param account добаление аккаунта
     */
    public void addAccount(GeneralAccountjICQ account) {
    }

    /**
     * Возвращает карту аккаунтов пользователя.
     * @return  аккаунты
     */
    public Map<String, GeneralAccountjICQ> getAccounts() {
        return accounts;
    }

    @Override
    public String toString() {
        String info = "Информация о пользователе:" + 
                "\nИмя \t- " + name + 
                "\nПуть \t- " + file.getAbsolutePath() + 
                "\nТема \t- " + theme +
                "\nАккаунты :";
        
        Iterator<GeneralAccountjICQ> it = accounts.values().iterator();
        while (it.hasNext()) {
            GeneralAccountjICQ account = it.next();
            info = info + "\n\t- " + account.getUid();
        }
        
        return info;
    }
}
